1. Field of the Invention
The present invention relates generally to computer filesystems. More particularly, the present invention relates to a method and system for an overlay filesystem.
2. Description of Related Art
The application processing network (APN) is a shared hosting infrastructure, which requires that applications are packaged into modular units capable of sharing machine resources without conflict. It also requires that the application's configuration is ‘portable’ and can easily be moved from machine to machine as it executes, without pre-configuration or global replication. Thus a mechanism is required that isolates any modifications to files into a single private directory hierarchy that is instantly accessible from all machines on an APN.
This need has been partially met using a technique that employs dynamic symbolic links. This technique in effect allows modifications of specific files and directories to be retargeted to a private directory hierarchy. The primary disadvantage of this technique is that an application must be analyzed, pre-configured, and these changes must be replicated to all compute nodes. As new sites are added to the APN, their addition will impact running sites since these changes must be made to “live” compute nodes. The rule should be very simple: site-specific changes should only go in site-specific directories. This approach keeps applications isolated from one another and preserves the integrity of the original compute node software and layout. An alternative to this approach is to modify the application configuration so that changes to OS-specific files and directories are not made. Unfortunately, this alternative requires more overhead when capturing sites, and all changes cannot be isolated without some additional technology, i.e. /etc/passwd entries. The current mechanism must be improved upon to streamline the onboarding of applications onto the APN, and to avoid a maintenance nightmare with numerous (and potentially conflicting) system file changes.
What is needed is a filesystem which has a shared read-only back filesystem, has front filesystems at a process level or process group level, is transparent to the application, preserves filesystem semantics, requires minimal performance overhead, and has a portable design.